Compile-time Copy Elimination

نویسندگان

  • Peter Schnorf
  • Mahadevan Ganapathi
  • John L. Hennessy
چکیده

Single-assignment and functional languages have value semantics that do not permit side-effects. This lack of side-effects makes automatic detection of parallelism and optimization for data locality in programs much easier. However, the same property poses a challenge in implementing these languages efficiently. This paper describes an optimizing compiler system that solves the key problem of aggregate copy elimination. The methods developed rely exclusively on compile-time algorithms, including interprocedural analysis, that are applied to an intermediate data flow representation. By dividing the problem into update-in-place and build-in-place analysis, a small set of relatively simple techniques—edge substitution, graph pattern matching, substructure sharing and substructure targeting—was found to be very powerful. If combined properly and implemented carefully, the algorithms eliminate unnecessary copy operations to a very high degree. No runtime overhead is imposed on the compiled programs.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Correctness of Copy in Calculi with Letrec, Case and Constructors

Call-by-need lambda calculi with letrec provide a rewritingbased operational semantics for (lazy) call-by-name functional languages. These calculi model the sharing behavior during evaluation more closely than let-based calculi that use a fixpoint combinator. In a previous paper we showed that the copy-transformation is correct for the small calculus LRλ. In this paper we demonstrate that the p...

متن کامل

Interprocedural Side-Effect Analysis and Optimisation in the Presence of Dynamic Class Loading

We introduce a new approach to computing interprocedural modification side effects for Java programs in the presence of dynamic class loading. When compile-time unknown classes can be loaded dynamically, the pointsto and modification sets computed statically based on the analysed program, called internal world, may be incomplete. Thus, the modification side effects cannot be determined based on...

متن کامل

Design and Implementation of a Dynamic Compiler

Compiler optimizations have traditionally focused on optimizing code at compile time [ASU86] , using values available statically (compile-time constants), or predictions of values deduced from profiling runs. Recently [KEH93] [LL96] [APC+96] , however, interest has grown in dynamic compilation, in which code is optimized around values available only at runtime. Dynamic value-based optimizations...

متن کامل

Theorem Prover : A New Exposition and Implementation in Prolog

A Prolog technology theorem prover (PTTP) is an extension of Prolog that is complete for the full rst-order predicate calculus. It di ers from Prolog in its use of uni cation with the occurs check for soundness, depthrst iterative-deepening search instead of unbounded depthrst search to make the search strategy complete, and the model elimination reduction rule that is added to Prolog inference...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Softw., Pract. Exper.

دوره 23  شماره 

صفحات  -

تاریخ انتشار 1993